--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / lxmfReactions.js
Displaying Raw • Download
meshchatx/src/frontend/js/lxmfReactions.js c0b0ddffd735a0d007c1be9a5e8563ec42fdafc0 (c0b0ddff) Text, 2.09 KB
T8b949e/**
* LXMF FIELD_REACTION (0x40): merge reaction rows onto parent messages.
*/
Tff7b72export Tff7b72const Te6edf3LXMF_REACTION_EMOJIS Tff7b72= Tb4b4b4[Ta5d6ff"\u{1F44D}"Tb4b4b4, Ta5d6ff"\u2764\uFE0F"Tb4b4b4, Ta5d6ff"\u{1F602}"Tb4b4b4, Ta5d6ff"\u{1F62E}"Tb4b4b4, Ta5d6ff"\u{1F622}"Tb4b4b4, Ta5d6ff"\u{1F621}"Tb4b4b4]Tb4b4b4;
T8b949e/** Emoji from LXMF reaction field, for conversation preview and UI. */
Tff7b72export Tff7b72function Te6edf3reactionEmojiFromLxmfMessageFieldsTb4b4b4(Te6edf3fieldsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fields Tff7b72|| Tff7b72typeof Te6edf3fields Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3reaction Tff7b72= Te6edf3fieldsTb4b4b4.Te6edf3reactionTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3reaction Tff7b72&& Tff7b72typeof Te6edf3reaction Tff7b72=== Ta5d6ff"object" Tff7b72&& Te6edf3reactionTb4b4b4.Te6edf3reaction_toTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3content Tff7b72= Te6edf3reactionTb4b4b4.Te6edf3reaction_contentTb4b4b4;
Tff7b72return Tff7b72typeof Te6edf3content Tff7b72=== Ta5d6ff"string" Tff7b72? Te6edf3content Tff7b72: Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72export Tff7b72function Te6edf3mergeLxmfReactionRowsIntoMessagesTb4b4b4(Te6edf3messagesTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3messagesTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3messagesTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3parents Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3reactions Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3m Tff7b72of Te6edf3messagesTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3m Tff7b72|| Tff7b72typeof Te6edf3m Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3mTb4b4b4.Te6edf3is_reactionTb4b4b4) Tb4b4b4{
Te6edf3reactionsTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3mTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3parentsTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Tb4b4b4...Te6edf3mTb4b4b4, Te6edf3reactionsTff7b72: Tb4b4b4[Tb4b4b4] Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3byHash Tff7b72= Tff7b72new Tffa657MapTb4b4b4(Te6edf3parentsTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3pTb4b4b4) Tb4b4b4=> Tb4b4b4[Tffa657StringTb4b4b4(Te6edf3pTb4b4b4.Te6edf3hash Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3pTb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3r Tff7b72of Te6edf3reactionsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3targetId Tff7b72= Te6edf3rTb4b4b4.Te6edf3reaction_toTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3targetIdTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3parent Tff7b72= Te6edf3byHashTb4b4b4.Te6edf3getTb4b4b4(Tffa657StringTb4b4b4(Te6edf3targetIdTb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3sender Tff7b72= Tffa657StringTb4b4b4(Te6edf3rTb4b4b4.Te6edf3reaction_sender Tff7b72|| Te6edf3rTb4b4b4.Te6edf3source_hash Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3emoji Tff7b72= Tff7b72typeof Te6edf3rTb4b4b4.Te6edf3reaction_emoji Tff7b72=== Ta5d6ff"string" Tff7b72? Te6edf3rTb4b4b4.Te6edf3reaction_emoji Tff7b72: Ta5d6ff""Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3emojiTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3senderKey Tff7b72= Te6edf3senderTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3dup Tff7b72= Te6edf3parentTb4b4b4.Te6edf3reactionsTb4b4b4.Te6edf3someTb4b4b4(
Tb4b4b4(Te6edf3xTb4b4b4) Tb4b4b4=> Tffa657StringTb4b4b4(Te6edf3xTb4b4b4.Te6edf3sender Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4) Tff7b72=== Te6edf3senderKey Tff7b72&& Te6edf3xTb4b4b4.Te6edf3emoji Tff7b72=== Te6edf3emoji
Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dupTb4b4b4) Tb4b4b4{
Te6edf3parentTb4b4b4.Te6edf3reactionsTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3emojiTb4b4b4,
Te6edf3senderTb4b4b4,
Te6edf3reactionHashTff7b72: Te6edf3rTb4b4b4.Te6edf3hash Tff7b72|| Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3parentsTb4b4b4;
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────